home *** CD-ROM | disk | FTP | other *** search
/ Aminet 44 / Aminet 44 (2001)(GTI - Schatztruhe)[!][Aug 2001].iso / Aminet / game / demo / Mattonite.lha / Mattonite / MattoniteOld.text < prev    next >
Text File  |  2001-06-12  |  53KB  |  1,631 lines

  1. '-> Mattonite by Stefano Regattin
  2. 'i> 2 ottobre 1996 
  3. 'm> 3,8,12,13,14,19,25,27,31 ottobre 1996
  4. 'm> 9 novembre 1996
  5. 'm> 12 novembre 1997 
  6. 'm> 17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 maggio 2000 
  7. 'm> 1,4,5,6,7,8,9,11,13,14,23,26,27,28 giugno 2000 
  8. 'm> 16,17,18,19,23,24 luglio 2000
  9. 'm> 5,12,13,14,15,30 agosto 2000 
  10. 'm> 1,10,11,26 settembre 2000
  11. 'm> 12,15,24,25,26,31 ottobre 2000 
  12. 'm> 2,16,17,21,23 novembre 2000
  13. 'm> 3 dicembre 2000
  14. '------------------- 
  15. Set Buffer 10
  16. FALSO=0
  17. VERO=-1
  18. OGGETTI$="MattoniteOggetti.Abk"
  19. SUONI$="MattoniteSuoni.Abk"
  20. BANCO=65535
  21. C0LOREARCOBALENO=0
  22. LARGHEZZAPANNELLO=48
  23. LIVELLO=0
  24. MASSIMOMATTONCINIDIPOTENZIAMENTOINCAMPO=8
  25. MASSIMOPALLINEINCAMPO=5
  26. MATTONCINIDARIDISEGNARE=50
  27. OGGETTOCENTRODELLABARRA=248
  28. OGGETTOLATIDELLABARRA=249
  29. OGGETTOLASER=250
  30. OGGETTORAGGIOLASER=254
  31. PRIMAPARTITA=VERO
  32. PUNTEGGIOMASSIMO=2500
  33. RAGGIOLASERRIFLESSO=FALSO
  34. Dim GIOCATORE$(99)
  35. Dim C0LOREFINALE(31),DELTAXPALLINA(MASSIMOPALLINEINCAMPO-1)
  36. Dim DELTAYPALLINA(MASSIMOPALLINEINCAMPO-1)
  37. Dim DURATARIGA(2),INGOMBRODELLABARRA(2),MATTONCINO(246)
  38. Dim MATTONCINODIPOTENZIAMENTO(MASSIMOMATTONCINIDIPOTENZIAMENTOINCAMPO-1)
  39. Dim PALLINA(MASSIMOPALLINEINCAMPO-1)
  40. Dim PALLINAINCOLLATA(MASSIMOPALLINEINCAMPO-1),PUNTEGGIO(99)
  41. Dim RIDISEGNODELMATTONCINO(2,MATTONCINIDARIDISEGNARE-1)
  42. Dim RIMBALZODELLAPALLINAAILATIDELLABARRA(MASSIMOPALLINEINCAMPO-1)
  43. Dim SUONODAESEGUIRE(3),VELOCITADELLAPALLINA(MASSIMOPALLINEINCAMPO-1)
  44. Dim XCOLLA(MASSIMOPALLINEINCAMPO-1),X0ZONA(246)
  45. Dim XMATTONCINODIPOTENZIAMENTO(MASSIMOMATTONCINIDIPOTENZIAMENTOINCAMPO-1)
  46. Dim XPALLINA(MASSIMOPALLINEINCAMPO-1),YCOLLA(MASSIMOPALLINEINCAMPO-1)
  47. Dim Y0ZONA(246),YMATTONCINODIPOTENZIAMENTO(MASSIMOMATTONCINIDIPOTENZIAMENTOINCAMPO-1)
  48. Dim YPALLINA(MASSIMOPALLINEINCAMPO-1)
  49. Global FALSO,VERO
  50. Global OGGETTI$,PERCORSO$,PERCORSODEILIVELLI$,PERCORSODELLAGRAFICA$
  51. Global PERCORSODELLAMUSICA$,SUONI$
  52. Global ALTEZZAFONT,BANCO,BONUS,C0LLA,C0LOREARCOBALENO,DURATARIGA
  53. Global IMMAGINEPALLINA,LARGHEZZAPANNELLO,LASER,LIMITEYPALLINA,LIVELLO
  54. Global LUNGHEZZADELLABARRA,LUNGHEZZADELLABARRACAMBIATA,MATTONCINI
  55. Global MATTONCINIDARIDISEGNARE,MATTONCINIDIPOTENZIAMENTO
  56. Global MASSIMOMATTONCINIDIPOTENZIAMENTOINCAMPO,MASSIMOPALLINEINCAMPO
  57. Global OGGETTOCENTRODELLABARRA,OGGETTOLATIDELLABARRA,OGGETTOLASER
  58. Global OGGETTORAGGIOLASER,OGGETTORIGAUNO,OGGETTORIGADUE,OGGETTORIGATRE,PALLINE
  59. Global PALLINEINCAMPO,PALLINEINCAMPOALLINIZIO,PUNTEGGIO,PUNTEGGIOMASSIMO
  60. Global RAGGIOLASERSPARATO,RIGA,RIMBALZODELLEPALLINESUIMATTONCINI,T0GLILARIGA
  61. Global XBARRA,YBARRA,XFINALERIGA,XRIGA
  62. Global GIOCATORE$()
  63. Global C0LOREFINALE(),DELTAXPALLINA(),DELTAYPALLINA(),DURATARIGA()
  64. Global INGOMBRODELLABARRA(),MATTONCINO(),MATTONCINODIPOTENZIAMENTO(),PALLINA()
  65. Global PALLINAINCOLLATA(),PUNTEGGIO(),RIDISEGNODELMATTONCINO()
  66. Global RIMBALZODELLAPALLINAAILATIDELLABARRA(),SUONODAESEGUIRE()
  67. Global VELOCITADELLAPALLINA(),X0ZONA(),XCOLLA(),XMATTONCINODIPOTENZIAMENTO()
  68. Global XPALLINA(),Y0ZONA(),YCOLLA(),YMATTONCINODIPOTENZIAMENTO(),YPALLINA()
  69. Proc IMPOSTALOSCHERMO
  70. Proc DISSOLVENZADEICOLORI[$FFF,0,0]
  71. Limit Mouse 
  72. Screen Hide 0
  73. Proc TROVAILFONTDATA70
  74. Proc IMPOSTALARCOBALENO
  75. Proc IMPOSTALEZONE
  76. Proc INDIVIDUALAPOSIZIONEDELPROGRAMMA
  77. Proc IMPOSTAIPERCORSIDEIFILE
  78. Proc CARICAGLIOGGETTI
  79. Proc CARICAISUONI
  80. Proc IMPOSTAICOLORI
  81. Proc DISSOLVENZADEICOLORI[$FFF,0,0]
  82. Proc IMPOSTAILMODODIRIDISEGNODEGLIOGGETTI
  83. Proc IMPOSTAGLIOGGETTIPERLERIGHE
  84. Proc CREALERIGHE
  85. Proc IMPOSTALADURATADELLERIGHE
  86. Proc IMPOSTALINGOMBRODELLABARRA
  87. Hide 
  88. Screen Show 0
  89. Proc CARICAILLIVELLO
  90. Proc DABANCOAVARIABILI
  91. Proc MOSTRAILPANNELLO
  92. Proc MOSTRAIMATTONCINI
  93. Proc DISSOLVENZADEICOLORI[0,1,2]
  94. Proc IMPOSTAILAMPEGGI
  95. Proc TESTOGRAFICOCENTRATOOFATTOSCORRERE[" ",0,0,ALTEZZAFONT,VERO]
  96. TESTOINTRODUTTIVO$="Press left mouse button to play..."+Chr$(10)
  97. TESTOINTRODUTTIVO$=TESTOINTRODUTTIVO$+"Press right mouse button or Esc key to quit..."+Chr$(10)
  98. TESTOINTRODUTTIVO$=TESTOINTRODUTTIVO$+"Press the Esc key during the game"+Chr$(10)
  99. TESTOINTRODUTTIVO$=TESTOINTRODUTTIVO$+"to end the game..."
  100. Do 
  101.  Proc MOSTRAIPUNTEGGIDEIGIOCATORI
  102.  Proc _ASPETTA[250]
  103.  Proc TESTOGRAFICOCENTRATOOFATTOSCORRERE[TESTOINTRODUTTIVO$,21,0,ALTEZZAFONT,FALSO]
  104.  Proc _ASPETTA[500]
  105.  Exit If TASTO=-2 or TASTO=27
  106.  If TASTO=-1
  107.   LASER=0
  108.   LIVELLO=0
  109.   LUNGHEZZADELLABARRA=1
  110.   LUNGHEZZADELLABARRACAMBIATA=1
  111.   NUOVOLIVELLO=VERO
  112.   PALLINE=5
  113.   PALLINEINCAMPO=1
  114.   PALLINEINCAMPOALLINIZIO=PALLINEINCAMPO
  115.   PUNTEGGIO=0
  116.   RIMBALZODELLEPALLINESUIMATTONCINI=VERO
  117.   XBARRA=X Screen(X Mouse)
  118.   YBARRA=247
  119.   LIMITEYPALLINA=YBARRA-4
  120.   Proc TESTOGRAFICOCENTRATOOFATTOSCORRERE[" ",0,0,ALTEZZAFONT,FALSO]
  121.   If PRIMAPARTITA=FALSO or LIVELLO>0
  122.    Proc CANCELLATUTTIIMATTONCINI
  123.    Proc CARICAILLIVELLO
  124.    Proc DABANCOAVARIABILI
  125.   End If 
  126.   PRIMAPARTITA=FALSO
  127.   Proc CONTAIMATTONCINI
  128.   Proc MOSTRAIMATTONCINI
  129.   Proc METTILEPALLINESULLABARRA
  130.   Proc IMPOSTALEVELOCITADELLEPALLINE
  131.   Repeat 
  132.    Proc MOSTRALEPALLINERIMASTE
  133.    Proc MOSTRAILLIVELLO
  134.    Proc MOSTRAILBONUS[VERO]
  135.    Proc MOSTRAILPUNTEGGIO[VERO]
  136.    Proc MOSTRAILPUNTEGGIOMASSIMO[VERO]
  137.    Proc IMPOSTAICANALIDELSUONODAESEGUIRE
  138.    If NUOVOLIVELLO=VERO
  139.     Proc TESTOGRAFICOCENTRATOOFATTOSCORRERE["Get ready for level"+Str$(LIVELLO)+"!"+Chr$(10)+"Press a (mouse) key to begin play...",22,0,ALTEZZAFONT,VERO]
  140.     Proc _ASPETTA[500]
  141.     Proc TESTOGRAFICOCENTRATOOFATTOSCORRERE[" ",0,0,ALTEZZAFONT,FALSO]
  142.    End If 
  143.    If XBARRA>0
  144.     X Mouse=X Hard(XBARRA)
  145.    End If 
  146.    For PALLINA=0 To MASSIMOPALLINEINCAMPO-1
  147.     If PALLINA<PALLINEINCAMPOALLINIZIO
  148.      PALLINA(PALLINA)=VERO
  149.     Else 
  150.      PALLINA(PALLINA)=FALSO
  151.     End If 
  152.    Next PALLINA
  153.    Repeat 
  154.     Proc LIMITAIMOVIMENTIDELLABARRA
  155.     TASTODELTOPOCLICCATO=Mouse Click
  156.     TASTOPREMUTO$=Inkey$
  157.     TASTIERA=Scancode
  158.     If TASTOPREMUTO$=Chr$(27)
  159.      PALLINE=0 : Exit 2
  160.     End If 
  161.     If TASTOPREMUTO$=" "
  162.      Proc MATTONCINIDIPOTENZIAMENTO[Rnd(18)-19,0]
  163.     End If 
  164.     If TASTIERA=80
  165.      Add LUNGHEZZADELLABARRACAMBIATA,1,0 To 2
  166.     Else If TASTIERA=81
  167.      Add LASER,1,0 To 3
  168.     Else If TASTIERA=82
  169.      Add PALLINEINCAMPOALLINIZIO,1,1 To 5
  170.      For PALLINA=0 To MASSIMOPALLINEINCAMPO-1
  171.       If PALLINA<PALLINEINCAMPOALLINIZIO
  172.        PALLINA(PALLINA)=VERO
  173.       Else 
  174.        PALLINA(PALLINA)=FALSO
  175.       End If 
  176.      Next PALLINA
  177.     Else If TASTIERA=83
  178.      C0LLA= Not C0LLA
  179.     Else If TASTIERA=84
  180.      Add RIGA,1,0 To 3
  181.      If RIGA>1
  182.       T0GLILARIGA=RIGA-1
  183.      Else If RIGA=0
  184.       T0GLILARIGA=3
  185.      End If 
  186.     Else If TASTIERA=85
  187.      RIMBALZODELLEPALLINESUIMATTONCINI= Not RIMBALZODELLEPALLINESUIMATTONCINI
  188.     Else If TASTIERA=89
  189.      If RIGA>0
  190.       For XRIGA=XRIGA To 0 Step -1
  191.        Proc T0GLILARIGA : Wait Vbl 
  192.       Next XRIGA
  193.       RIGA=0
  194.      End If 
  195.      Proc CANCELLALEPALLINE
  196.      Proc METTILEPALLINESULLABARRA
  197.      Proc CANCELLATUTTIIMATTONCINI
  198.      Proc CANCELLAILRAGGIOLASER
  199.      Inc LIVELLO
  200.      Proc CARICAILLIVELLO
  201.      Proc TESTOGRAFICOCENTRATOOFATTOSCORRERE[" ",0,0,ALTEZZAFONT,VERO]
  202.      Exit If LIVELLO=-1,2
  203.      Proc DABANCOAVARIABILI
  204.      Ink 0 : Bar 0,0 To 271,211
  205.      Proc MOSTRAIMATTONCINI
  206.      Proc CONTAIMATTONCINI
  207.      Proc MOSTRAILLIVELLO
  208.      Proc MOSTRAILBONUS[VERO]
  209.      NUOVOLIVELLO=VERO
  210.     End If 
  211.     XBARRA=X Screen(X Mouse)
  212.     Proc CAMBIALALUNGHEZZADELLABARRA
  213.     If LUNGHEZZADELLABARRA=0
  214.      Bob OGGETTOCENTRODELLABARRA,XBARRA,YBARRA,5
  215.      Bob OGGETTOLATIDELLABARRA,XBARRA,YBARRA,6
  216.     Else If LUNGHEZZADELLABARRA=1
  217.      Bob OGGETTOCENTRODELLABARRA,XBARRA,YBARRA,1
  218.      Bob OGGETTOLATIDELLABARRA,XBARRA,YBARRA,2
  219.     Else If LUNGHEZZADELLABARRA=2
  220.      Bob OGGETTOCENTRODELLABARRA,XBARRA,YBARRA,3
  221.      Bob OGGETTOLATIDELLABARRA,XBARRA,YBARRA,4
  222.     End If 
  223.     If LASER>0
  224.      Bob OGGETTOLASER,XBARRA,YBARRA,6+LASER
  225.     Else 
  226.      Bob Off OGGETTOLASER
  227.     End If 
  228.     For PALLINA=0 To MASSIMOPALLINEINCAMPO-1
  229.      FANTASMAPALLINA=MASSIMOMATTONCINIDIPOTENZIAMENTOINCAMPO+PALLINA
  230.      If PALLINA(PALLINA)=VERO
  231.       Bob FANTASMAPALLINA,XBARRA-14+PALLINA*7,LIMITEYPALLINA,IMMAGINEPALLINA
  232.      Else 
  233.       Bob Off FANTASMAPALLINA
  234.      End If 
  235.     Next PALLINA
  236.     Proc MATTONCINIDIPOTENZIAMENTO[0,0]
  237.     If RIGA>0
  238.      If T0GLILARIGA>0
  239.       If RIGA>1 and XRIGA>0
  240.        Dec XRIGA : Proc T0GLILARIGA
  241.        If XRIGA=0
  242.         T0GLILARIGA=0
  243.        End If 
  244.       End If 
  245.      Else 
  246.       If XRIGA<XFINALERIGA
  247.        Inc XRIGA : Proc METTILARIGA
  248.       End If 
  249.      End If 
  250.     Else 
  251.      If XRIGA>0 and T0GLILARIGA=3
  252.       Dec XRIGA : Proc T0GLILARIGA
  253.       If XRIGA=0
  254.        T0GLILARIGA=0
  255.       End If 
  256.      End If 
  257.     End If 
  258.     If NUOVOLIVELLO=VERO
  259.      If INIZIOGIOCOSUONATO=FALSO
  260.       Sam Play SUONODAESEGUIRE(0),1 : Proc SUONODAESEGUIRE
  261.       Wait 20 : Sam Play SUONODAESEGUIRE(0),1 : Proc SUONODAESEGUIRE
  262.       INIZIOGIOCOSUONATO=VERO
  263.      End If 
  264.      NUOVOLIVELLO=FALSO
  265.     End If 
  266.     Bob Update : Wait Vbl 
  267.    Until TASTODELTOPOCLICCATO>0
  268.    For PALLINA=0 To MASSIMOPALLINEINCAMPO-1
  269.     If PALLINA(PALLINA)=VERO
  270.      FANTASMAPALLINA=MASSIMOMATTONCINIDIPOTENZIAMENTOINCAMPO+PALLINA
  271.      XPALLINA(PALLINA)=X Bob(FANTASMAPALLINA)
  272.      YPALLINA(PALLINA)=Y Bob(FANTASMAPALLINA)
  273.      D1REZIONEPALLINA=Rnd(1)
  274.      If D1REZIONEPALLINA=0
  275.       DELTAXPALLINA(PALLINA)=2
  276.      Else 
  277.       DELTAXPALLINA(PALLINA)=-2
  278.      End If 
  279.      DELTAYPALLINA(PALLINA)=-VELOCITADELLAPALLINA(PALLINA)
  280.     End If 
  281.     RIMBALZODELLAPALLINAAILATIDELLABARRA(PALLINA)=FALSO
  282.    Next PALLINA
  283.    PALLINEINCAMPO=PALLINEINCAMPOALLINIZIO
  284.    Do 
  285.     TASTODELTOPOCLICCATO=Mouse Click
  286.     TASTOPREMUTO$=Inkey$
  287.     If TASTOPREMUTO$=Chr$(27)
  288.      PALLINE=0 : Exit 
  289.     End If 
  290.     For PALLINA=0 To MASSIMOPALLINEINCAMPO-1
  291.      If PALLINA(PALLINA)=VERO
  292.       If TASTODELTOPOCLICCATO=1
  293.        For P=0 To MASSIMOPALLINEINCAMPO-1
  294.         If PALLINA(P)=VERO and PALLINAINCOLLATA(P)=VERO
  295.          YPALLINA(P)=LIMITEYPALLINA
  296.          PALLINAINCOLLATA(P)=FALSO
  297.         End If 
  298.        Next P
  299.       End If 
  300.       If C0LLA=FALSO
  301.        PALLINAINCOLLATA(PALLINA)=FALSO
  302.       End If 
  303.       If PALLINAINCOLLATA(PALLINA)=VERO
  304.        XPALLINA(PALLINA)=XBARRA+XCOLLA(PALLINA)
  305.        YPALLINA(PALLINA)=YBARRA+YCOLLA(PALLINA)
  306.       Else 
  307.        Add XPALLINA(PALLINA),DELTAXPALLINA(PALLINA)
  308.        Add YPALLINA(PALLINA),DELTAYPALLINA(PALLINA)
  309.        If TILTPALLINA=VERO
  310.         Add XPALLINA(PALLINA),XTILTPALLINA
  311.         Add YPALLINA(PALLINA),YTILTPALLINA
  312.        End If 
  313.       End If 
  314.       FANTASMAPALLINA=MASSIMOMATTONCINIDIPOTENZIAMENTOINCAMPO+PALLINA
  315.       If PALLINAINCOLLATA(PALLINA)=FALSO
  316.        If Bob Col(FANTASMAPALLINA,OGGETTOCENTRODELLABARRA To OGGETTOLATIDELLABARRA)=VERO
  317.         OGGETTO=Col(-1)
  318.         If OGGETTO=OGGETTOCENTRODELLABARRA and YPALLINA(PALLINA)>YBARRA
  319.          If C0LLA=VERO
  320.           XCOLLA(PALLINA)=XPALLINA(PALLINA)-XBARRA : YCOLLA(PALLINA)=-4
  321.           PALLINAINCOLLATA(PALLINA)=VERO
  322.          End If 
  323.          If RIMBALZODELLAPALLINAAILATIDELLABARRA(PALLINA)=VERO
  324.           DELTAXPALLINA(PALLINA)=VELOCITADELLAPALLINA(PALLINA)*Sgn(DELTAXPALLINA(PALLINA))
  325.           DELTAYPALLINA(PALLINA)=-VELOCITADELLAPALLINA(PALLINA)
  326.           RIMBALZODELLAPALLINAAILATIDELLABARRA(PALLINA)=FALSO
  327.          Else 
  328.           DELTAYPALLINA(PALLINA)=-VELOCITADELLAPALLINA(PALLINA)
  329.          End If 
  330.          YPALLINA(PALLINA)=LIMITEYPALLINA
  331.          Sam Play SUONODAESEGUIRE(0),2 : Proc SUONODAESEGUIRE
  332.         Else If OGGETTO=OGGETTOLATIDELLABARRA and YPALLINA(PALLINA)>YBARRA+2
  333.          If C0LLA=VERO
  334.           XCOLLA(PALLINA)=XPALLINA(PALLINA)-XBARRA : YCOLLA(PALLINA)=-2
  335.           PALLINAINCOLLATA(PALLINA)=VERO
  336.          End If 
  337.          If RIMBALZODELLAPALLINAAILATIDELLABARRA(PALLINA)=FALSO
  338.           DELTAXPALLINA(PALLINA)=VELOCITADELLAPALLINA(PALLINA)*2*Sgn(DELTAXPALLINA(PALLINA))
  339.           DELTAYPALLINA(PALLINA)=-Max(VELOCITADELLAPALLINA(PALLINA)/2,1)
  340.           RIMBALZODELLAPALLINAAILATIDELLABARRA(PALLINA)=VERO
  341.          Else 
  342.           DELTAYPALLINA(PALLINA)=-Max(VELOCITADELLAPALLINA(PALLINA)/2,1)
  343.          End If 
  344.          Sam Play SUONODAESEGUIRE(0),2,4181 : Proc SUONODAESEGUIRE
  345.         End If 
  346.        End If 
  347.       End If 
  348.       If XPALLINA(PALLINA)<3
  349.        XPALLINA(PALLINA)=3 : DELTAXPALLINA(PALLINA)=-DELTAXPALLINA(PALLINA)
  350.       End If 
  351.       If XPALLINA(PALLINA)>268
  352.        XPALLINA(PALLINA)=268 : DELTAXPALLINA(PALLINA)=-DELTAXPALLINA(PALLINA)
  353.       End If 
  354.       If YPALLINA(PALLINA)<3
  355.        YPALLINA(PALLINA)=3 : DELTAYPALLINA(PALLINA)=-DELTAYPALLINA(PALLINA)
  356.       End If 
  357.       Bob FANTASMAPALLINA,XPALLINA(PALLINA),YPALLINA(PALLINA),IMMAGINEPALLINA
  358.       MATTONCINOELIMINATODALLEPALLINE=FALSO
  359.       MATTONCINO=Zone(XPALLINA(PALLINA),YPALLINA(PALLINA))
  360.       If MATTONCINO>0
  361.        If MATTONCINO(MATTONCINO-1)>0
  362.         If MATTONCINO(MATTONCINO-1)<10
  363.          MATTONCINOELIMINATODALLEPALLINE=VERO
  364.         Else If MATTONCINO(MATTONCINO-1)<28 and MATTONCINO(MATTONCINO-1)>9
  365.          Add MATTONCINO(MATTONCINO-1),-9
  366.          Paste Bob X0ZONA(MATTONCINO-1),Y0ZONA(MATTONCINO-1),MATTONCINO(MATTONCINO-1)+82
  367.          Inc PUNTEGGIO : Proc MOSTRAILPUNTEGGIO[FALSO]
  368.          Proc MATTONCINIDIPOTENZIAMENTO[MATTONCINO,Rnd(19)]
  369.         End If 
  370.         If MATTONCINOELIMINATODALLEPALLINE=VERO
  371.          Dec MATTONCINI : Inc PUNTEGGIO : Proc MOSTRAILPUNTEGGIO[FALSO]
  372.          Proc MATTONCINIDIPOTENZIAMENTO[MATTONCINO,Rnd(19)]
  373.          MATTONCINO(MATTONCINO-1)=0
  374.         End If 
  375.         If RIMBALZODELLEPALLINESUIMATTONCINI=VERO
  376.          YMATTONCINO=Y0ZONA(MATTONCINO-1)
  377.          If YPALLINA>YMATTONCINO and YPALLINA<YMATTONCINO+9
  378.           DELTAXPALLINA(PALLINA)=-DELTAXPALLINA(PALLINA)
  379.          Else 
  380.           DELTAYPALLINA(PALLINA)=-DELTAYPALLINA(PALLINA)
  381.          End If 
  382.          If MATTONCINO(MATTONCINO-1)<28
  383.           Sam Play SUONODAESEGUIRE(0),3 : Proc SUONODAESEGUIRE
  384.          Else 
  385.           Sam Play SUONODAESEGUIRE(0),3,10537 : Proc SUONODAESEGUIRE
  386.          End If 
  387.         Else 
  388.          If MATTONCINO(MATTONCINO-1)<28
  389.           Sam Play SUONODAESEGUIRE(0),6 : Proc SUONODAESEGUIRE
  390.          Else 
  391.           Sam Play SUONODAESEGUIRE(0),6,10537 : Proc SUONODAESEGUIRE
  392.          End If 
  393.         End If 
  394.         For MATTONCINODARIDISEGNARE=0 To MATTONCINIDARIDISEGNARE-1
  395.          If RIDISEGNODELMATTONCINO(0,MATTONCINODARIDISEGNARE)=MATTONCINO
  396.           RIDISEGNODELMATTONCINO(1,MATTONCINODARIDISEGNARE)=120
  397.           RIDISEGNODELMATTONCINO(2,MATTONCINODARIDISEGNARE)=MATTONCINO(MATTONCINO-1)
  398.           Exit 
  399.          End If 
  400.         Next MATTONCINODARIDISEGNARE
  401.         If MATTONCINODARIDISEGNARE=MATTONCINIDARIDISEGNARE
  402.          For MATTONCINODARIDISEGNARE=0 To MATTONCINIDARIDISEGNARE-1
  403.           If RIDISEGNODELMATTONCINO(1,MATTONCINODARIDISEGNARE)=0
  404.            RIDISEGNODELMATTONCINO(0,MATTONCINODARIDISEGNARE)=MATTONCINO
  405.            RIDISEGNODELMATTONCINO(1,MATTONCINODARIDISEGNARE)=120
  406.            RIDISEGNODELMATTONCINO(2,MATTONCINODARIDISEGNARE)=MATTONCINO(MATTONCINO-1)
  407.            Exit 
  408.           End If 
  409.          Next MATTONCINODARIDISEGNARE
  410.         End If 
  411.        End If 
  412.       End If 
  413.       If YPALLINA(PALLINA)>250 and Bob Col(FANTASMAPALLINA,OGGETTORIGAUNO To OGGETTORIGATRE)=VERO
  414.        YPALLINA(PALLINA)=250
  415.        DELTAYPALLINA(PALLINA)=-VELOCITADELLAPALLINA(PALLINA)
  416.       Else If YPALLINA(PALLINA)>255
  417.        If PALLINA(PALLINA)=VERO
  418.         Bob Off FANTASMAPALLINA : Bob Update 
  419.         Dec PALLINEINCAMPO
  420.         PALLINA(PALLINA)=FALSO
  421.        End If 
  422.        If PALLINEINCAMPO=0
  423.         Dec PALLINE
  424.         If LASER>0
  425.          Dec LASER
  426.          If LASER=0
  427.           Bob Off OGGETTOLASER
  428.          End If 
  429.         End If 
  430.         Proc CANCELLAILRAGGIOLASER
  431.         C0LLA=FALSO
  432.         For P=0 To MASSIMOPALLINEINCAMPO-1
  433.          PALLINAINCOLLATA(P)=FALSO
  434.          If VELOCITADELLAPALLINA(P)>1
  435.           Dec VELOCITADELLAPALLINA(P)
  436.          End If 
  437.         Next P
  438.         RIMBALZODELLEPALLINESUIMATTONCINI=VERO
  439.         INIZIOGIOCOSUONATO=FALSO
  440.         Sam Play SUONODAESEGUIRE(0),5 : Proc SUONODAESEGUIRE
  441.         Exit 2
  442.        End If 
  443.       End If 
  444.      End If 
  445.     Next PALLINA
  446.     XBARRA=X Screen(X Mouse)
  447.     If LUNGHEZZADELLABARRA=0
  448.      Bob OGGETTOCENTRODELLABARRA,XBARRA,YBARRA,5
  449.      Bob OGGETTOLATIDELLABARRA,XBARRA,YBARRA,6
  450.     Else If LUNGHEZZADELLABARRA=1
  451.      Bob OGGETTOCENTRODELLABARRA,XBARRA,YBARRA,1
  452.      Bob OGGETTOLATIDELLABARRA,XBARRA,YBARRA,2
  453.     Else If LUNGHEZZADELLABARRA=2
  454.      Bob OGGETTOCENTRODELLABARRA,XBARRA,YBARRA,3
  455.      Bob OGGETTOLATIDELLABARRA,XBARRA,YBARRA,4
  456.     End If 
  457.     If TILTPALLINA=VERO
  458.      Add XTILTPALLINA,-Sgn(XTILTPALLINA) : Add YTILTPALLINA,-Sgn(YTILTPALLINA)
  459.      If XTILTPALLINA>0
  460.       XTILTPALLINA=Max(XTILTPALLINA,0)
  461.      Else If XTILTPALLINA<0
  462.       XTILTPALLINA=Min(XTILTPALLINA,0)
  463.      End If 
  464.      If YTILTPALLINA>0
  465.       YTILTPALLINA=Max(YTILTPALLINA,0)
  466.      Else If YTILTPALLINA<0
  467.       YTILTPALLINA=Min(YTILTPALLINA,0)
  468.      End If 
  469.      Screen Display 0,128+XTILTPALLINA,44+YTILTPALLINA,320,256
  470.      If XTILTPALLINA=0 and YTILTPALLINA=0
  471.       TILTPALLINA=FALSO
  472.      End If 
  473.     Else 
  474.      If TASTOPREMUTO$=" "
  475.       XTILTPALLINA=Rnd(32)-16 : YTILTPALLINA=Rnd(32)-16 : TILTPALLINA=VERO
  476.      End If 
  477.     End If 
  478.     If LASER>0
  479.      Bob OGGETTOLASER,XBARRA,YBARRA,6+LASER
  480.     Else 
  481.      Bob Off OGGETTOLASER
  482.      If RAGGIOLASERSPARATO=VERO
  483.       Proc CANCELLAILRAGGIOLASER
  484.      End If 
  485.     End If 
  486.     If TASTODELTOPOCLICCATO=2
  487.      If LASER>0
  488.       Bob OGGETTOLASER,XBARRA,YBARRA,6+LASER
  489.       If RAGGIOLASERSPARATO=FALSO
  490.        XLASER=XBARRA : YLASER=YBARRA-1 : RAGGIOLASERSPARATO=VERO
  491.        Sam Play SUONODAESEGUIRE(0),4,11363-LASER*3000 : Proc SUONODAESEGUIRE
  492.       End If 
  493.      End If 
  494.     End If 
  495.     If RAGGIOLASERSPARATO=VERO
  496.      Bob OGGETTORAGGIOLASER,XLASER,YLASER,9+LASER
  497.      Proc PULISCISOTTOILRAGGIOLASER[XLASER,YLASER]
  498.      If RAGGIOLASERRIFLESSO=VERO
  499.       If Bob Col(OGGETTORAGGIOLASER,OGGETTOCENTRODELLABARRA To OGGETTOLATIDELLABARRA)=VERO
  500.        Proc CANCELLAILRAGGIOLASER
  501.        RAGGIOLASERRIFLESSO=FALSO
  502.       Else 
  503.        Add YLASER,5
  504.        If YLASER>255
  505.         Proc CANCELLAILRAGGIOLASER
  506.         RAGGIOLASERRIFLESSO=FALSO
  507.        End If 
  508.       End If 
  509.      Else 
  510.       Add YLASER,-5
  511.       If YLASER<0
  512.        Proc CANCELLAILRAGGIOLASER
  513.       End If 
  514.      End If 
  515.      MATTONCINOELIMINATODALRAGGIOLASER=FALSO
  516.      ZONALASER=Zone(XLASER,YLASER)
  517.      If ZONALASER>0
  518.       If MATTONCINO(ZONALASER-1)>0
  519.        If MATTONCINO(ZONALASER-1)<10
  520.         MATTONCINOELIMINATODALRAGGIOLASER=VERO
  521.        Else If MATTONCINO(ZONALASER-1)<28 and MATTONCINO(ZONALASER-1)>9
  522.         Add MATTONCINO(ZONALASER-1),-9
  523.         Paste Bob X0ZONA(ZONALASER-1),Y0ZONA(ZONALASER-1),MATTONCINO(ZONALASER-1)+82
  524.         Inc PUNTEGGIO : Proc MOSTRAILPUNTEGGIO[FALSO]
  525.         Proc CANCELLAILRAGGIOLASER
  526.        Else If MATTONCINO(ZONALASER-1)=28
  527.         If LASER>0
  528.          MATTONCINOELIMINATODALRAGGIOLASER=VERO
  529.         End If 
  530.        Else If MATTONCINO(ZONALASER-1)=29
  531.         If LASER>1
  532.          MATTONCINOELIMINATODALRAGGIOLASER=VERO
  533.         Else 
  534.          Proc CANCELLAILRAGGIOLASER
  535.         End If 
  536.        Else If MATTONCINO(ZONALASER-1)=30
  537.         If LASER=3
  538.          MATTONCINOELIMINATODALRAGGIOLASER=VERO
  539.         Else 
  540.          Proc CANCELLAILRAGGIOLASER
  541.         End If 
  542.        Else If MATTONCINO(ZONALASER-1)=31
  543.         If LASER>0
  544.          RAGGIOLASERRIFLESSO=VERO
  545.          MATTONCINOELIMINATODALRAGGIOLASER=VERO
  546.         Else 
  547.          Proc CANCELLAILRAGGIOLASER
  548.         End If 
  549.        Else If MATTONCINO(ZONALASER-1)=32
  550.         If LASER>1
  551.          RAGGIOLASERRIFLESSO=VERO
  552.          MATTONCINOELIMINATODALRAGGIOLASER=VERO
  553.         Else 
  554.          Proc CANCELLAILRAGGIOLASER
  555.         End If 
  556.        Else If MATTONCINO(ZONALASER-1)=33
  557.         If LASER=3
  558.          RAGGIOLASERRIFLESSO=VERO
  559.          MATTONCINOELIMINATODALRAGGIOLASER=VERO
  560.         Else 
  561.          Proc CANCELLAILRAGGIOLASER
  562.         End If 
  563.        End If 
  564.        If MATTONCINOELIMINATODALRAGGIOLASER=VERO
  565.         Dec MATTONCINI : Inc PUNTEGGIO : Proc MOSTRAILPUNTEGGIO[FALSO]
  566.         MATTONCINO(ZONALASER-1)=0
  567.         If RAGGIOLASERRIFLESSO=FALSO
  568.          Proc CANCELLAILRAGGIOLASER
  569.         End If 
  570.        End If 
  571.        For MATTONCINODARIDISEGNARE=0 To MATTONCINIDARIDISEGNARE-1
  572.         If RIDISEGNODELMATTONCINO(0,MATTONCINODARIDISEGNARE)=ZONALASER
  573.          RIDISEGNODELMATTONCINO(1,MATTONCINODARIDISEGNARE)=25
  574.          RIDISEGNODELMATTONCINO(2,MATTONCINODARIDISEGNARE)=MATTONCINO(ZONALASER-1)
  575.          Exit 
  576.         End If 
  577.        Next MATTONCINODARIDISEGNARE
  578.        If MATTONCINODARIDISEGNARE=MATTONCINIDARIDISEGNARE
  579.         For MATTONCINODARIDISEGNARE=0 To MATTONCINIDARIDISEGNARE-1
  580.          If RIDISEGNODELMATTONCINO(1,MATTONCINODARIDISEGNARE)=0
  581.           RIDISEGNODELMATTONCINO(0,MATTONCINODARIDISEGNARE)=ZONALASER
  582.           RIDISEGNODELMATTONCINO(1,MATTONCINODARIDISEGNARE)=25
  583.           RIDISEGNODELMATTONCINO(2,MATTONCINODARIDISEGNARE)=MATTONCINO(ZONALASER-1)
  584.           Exit 
  585.          End If 
  586.         Next MATTONCINODARIDISEGNARE
  587.        End If 
  588.       End If 
  589.      End If 
  590.     End If 
  591.     If T0GLILARIGA>0
  592.      If XRIGA>0
  593.       Dec XRIGA : Proc T0GLILARIGA
  594.      Else 
  595.       T0GLILARIGA=0
  596.      End If 
  597.     Else 
  598.      If RIGA>0
  599.       If DURATARIGA>0
  600.        Dec DURATARIGA
  601.        If DURATARIGA=0
  602.         T0GLILARIGA=RIGA : RIGA=0
  603.        End If 
  604.       End If 
  605.       If XRIGA<XFINALERIGA
  606.        Inc XRIGA : Proc METTILARIGA
  607.       End If 
  608.      End If 
  609.     End If 
  610.     Proc MATTONCINIDIPOTENZIAMENTO[0,0]
  611.     Bob Update 
  612.     For MATTONCINODARIDISEGNARE=0 To MATTONCINIDARIDISEGNARE-1
  613.      If RIDISEGNODELMATTONCINO(0,MATTONCINODARIDISEGNARE)>0
  614.       If RIDISEGNODELMATTONCINO(1,MATTONCINODARIDISEGNARE)>0
  615.        X0ZONA=X0ZONA(RIDISEGNODELMATTONCINO(0,MATTONCINODARIDISEGNARE)-1)
  616.        X1ZONA=X0ZONA+19
  617.        Y0ZONA=Y0ZONA(RIDISEGNODELMATTONCINO(0,MATTONCINODARIDISEGNARE)-1)
  618.        Y1ZONA=Y0ZONA+9
  619.        If RIDISEGNODELMATTONCINO(2,MATTONCINODARIDISEGNARE)>0
  620.         Paste Bob X0ZONA,Y0ZONA,RIDISEGNODELMATTONCINO(2,MATTONCINODARIDISEGNARE)+82
  621.        Else 
  622.         Ink 0 : Bar X0ZONA,Y0ZONA To X1ZONA,Y1ZONA
  623.        End If 
  624.        Dec RIDISEGNODELMATTONCINO(1,MATTONCINODARIDISEGNARE)
  625.       Else 
  626.        RIDISEGNODELMATTONCINO(0,MATTONCINODARIDISEGNARE)=0
  627.        RIDISEGNODELMATTONCINO(1,MATTONCINODARIDISEGNARE)=0
  628.        RIDISEGNODELMATTONCINO(2,MATTONCINODARIDISEGNARE)=0
  629.       End If 
  630.      End If 
  631.     Next MATTONCINODARIDISEGNARE
  632.     Wait Vbl 
  633.     If PUNTEGGIO>PUNTEGGIOMASSIMO
  634.      PUNTEGGIOMASSIMO=PUNTEGGIO : Proc MOSTRAILPUNTEGGIOMASSIMO[FALSO]
  635.     End If 
  636.     If BONUS>0
  637.      If Timer>9
  638.       Dec BONUS : Proc MOSTRAILBONUS[FALSO]
  639.       Timer=0
  640.      End If 
  641.     End If 
  642.     If MATTONCINI=0
  643.      If RIGA>0
  644.       T0GLILARIGA=RIGA
  645.       For XRIGA=XRIGA To 0 Step -1
  646.        Proc T0GLILARIGA : Wait Vbl 
  647.       Next XRIGA
  648.       RIGA=0
  649.       Inc XRIGA
  650.      End If 
  651.      Proc CANCELLALEPALLINE
  652.      PALLINEINCAMPOALLINIZIO=PALLINEINCAMPO
  653.      Proc METTILEPALLINESULLABARRA
  654.      Proc CANCELLAILRAGGIOLASER
  655.      Proc CANCELLATUTTIIMATTONCINI
  656.      Proc ANNULLAILRIDISEGNODEIMATTONCINI
  657.      Proc CANCELLAIMATTONCINIDIPOTENZIAMENTO
  658.      Proc TESTOGRAFICOCENTRATOOFATTOSCORRERE[" ",0,0,ALTEZZAFONT,VERO]
  659.      Proc AGGIUNGIILBONUSALPUNTEGGIO
  660.      Inc LIVELLO
  661.      Proc CARICAILLIVELLO
  662.      Exit If LIVELLO=-1,2
  663.      Proc DABANCOAVARIABILI
  664.      Ink 0 : Bar 0,0 To 271,211
  665.      Proc MOSTRAIMATTONCINI
  666.      Proc CONTAIMATTONCINI
  667.      NUOVOLIVELLO=VERO
  668.      Exit 
  669.     End If 
  670.    Loop 
  671.   Until PALLINE=0
  672.   Proc CANCELLALEPALLINE
  673.   Proc CANCELLALABARRA
  674.   If RIGA>0
  675.    T0GLILARIGA=RIGA
  676.    For XRIGA=XRIGA To 0 Step -1
  677.     Proc T0GLILARIGA : Wait Vbl 
  678.    Next XRIGA
  679.   End If 
  680.   Proc TESTOGRAFICOCENTRATOOFATTOSCORRERE[" ",0,0,ALTEZZAFONT,VERO]
  681.   FINEGIOCO$="The game is finished,"+Chr$(10)+"I hope you have enjoyed."+Chr$(10)+"Bye bye!"
  682.   Proc TESTOGRAFICOCENTRATOOFATTOSCORRERE[FINEGIOCO$,22,0,ALTEZZAFONT,FALSO]
  683.   Proc _ASPETTA[500]
  684.  End If 
  685. Loop 
  686. Bob Off : Bob Update : Flash Off 
  687. Proc TESTOGRAFICOCENTRATOOFATTOSCORRERE[" ",0,0,ALTEZZAFONT,FALSO]
  688. Proc DISSOLVENZADEICOLORI[0,1,1]
  689. Proc T0GLIIMATTONCINI
  690. Proc T0GLIILPANNELLO
  691. Proc T0GLILARCOBALENO
  692. Screen Close 0 : Erase All : End 
  693. Procedure AGGIUNGIILBONUSALPUNTEGGIO
  694.  If BONUS>0
  695.   BONUS$="I am going to add the bonus points"+Chr$(10)+"to your game points..."+Chr$(10)+"Wait for a moment, please..."
  696.   Proc TESTOGRAFICOCENTRATOOFATTOSCORRERE[BONUS$,22,0,ALTEZZAFONT,FALSO]
  697.   Repeat 
  698.    Inc PUNTEGGIO : Proc MOSTRAILPUNTEGGIO[FALSO]
  699.    If PUNTEGGIO>PUNTEGGIOMASSIMO
  700.     PUNTEGGIOMASSIMO=PUNTEGGIO : Proc MOSTRAILPUNTEGGIOMASSIMO[FALSO]
  701.    End If 
  702.    Dec BONUS : Proc MOSTRAILBONUS[FALSO]
  703.   Until BONUS=0
  704.  Else 
  705.   BONUS$="There are no bonus points"+Chr$(10)+"to add to your game points..."+Chr$(10)+"I am sorry..."+Chr$(10)+"I wish a better luck for the next level."+Chr$(10)+"Press a (mouse) key to continue..."
  706.   Proc TESTOGRAFICOCENTRATOOFATTOSCORRERE[BONUS$,22,0,ALTEZZAFONT,FALSO]
  707.   _ASPETTA[1000]
  708.  End If 
  709.  Proc TESTOGRAFICOCENTRATOOFATTOSCORRERE[" ",0,0,ALTEZZAFONT,FALSO]
  710. End Proc
  711. Procedure ANNULLAILRIDISEGNODEIMATTONCINI
  712.  For MATTONCINODARIDISEGNARE=0 To MATTONCINIDARIDISEGNARE-1
  713.   RIDISEGNODELMATTONCINO(0,MATTONCINODARIDISEGNARE)=0
  714.   RIDISEGNODELMATTONCINO(1,MATTONCINODARIDISEGNARE)=0
  715.   RIDISEGNODELMATTONCINO(2,MATTONCINODARIDISEGNARE)=0
  716.  Next MATTONCINODARIDISEGNARE
  717. End Proc
  718. Procedure _ASPETTA[TEMP0DAASPETTARE]
  719.  Shared TASTO
  720.  TASTO=0
  721.  Timer=0
  722.  Repeat 
  723.   Exit If Timer>=TEMP0DAASPETTARE
  724.   TASTODELTOPOPREMUTO=Mouse Key
  725.   TASTOPREMUTO$=Inkey$
  726.  Until TASTODELTOPOPREMUTO>0 or TASTOPREMUTO$<>""
  727.  If TASTODELTOPOPREMUTO>0
  728.   TASTO=-TASTODELTOPOPREMUTO
  729.  Else 
  730.   TASTO=Asc(TASTOPREMUTO$)
  731.  End If 
  732. End Proc
  733. Procedure CAMBIALALUNGHEZZADELLABARRA
  734.  If LUNGHEZZADELLABARRACAMBIATA<>LUNGHEZZADELLABARRA
  735.   If LUNGHEZZADELLABARRA=0
  736.    If LUNGHEZZADELLABARRACAMBIATA=1
  737.     Gosub LUNGHEZZADAZEROAUNO
  738.    End If 
  739.    If LUNGHEZZADELLABARRACAMBIATA=2
  740.     Gosub LUNGHEZZADAZEROAUNO
  741.     Gosub LUNGHEZZADAUNOADUE
  742.    End If 
  743.   Else If LUNGHEZZADELLABARRA=1
  744.    If LUNGHEZZADELLABARRACAMBIATA=0
  745.     Gosub LUNGHEZZADAUNOAZERO
  746.    End If 
  747.    If LUNGHEZZADELLABARRACAMBIATA=2
  748.     Gosub LUNGHEZZADAUNOADUE
  749.    End If 
  750.   Else If LUNGHEZZADELLABARRA=2
  751.    If LUNGHEZZADELLABARRACAMBIATA=0
  752.     Gosub LUNGHEZZADADUEAUNO
  753.     Gosub LUNGHEZZADAUNOAZERO
  754.    End If 
  755.    If LUNGHEZZADELLABARRACAMBIATA=1
  756.     Gosub LUNGHEZZADADUEAUNO
  757.    End If 
  758.   End If 
  759.  End If 
  760.  LUNGHEZZADELLABARRA=LUNGHEZZADELLABARRACAMBIATA
  761.  If LUNGHEZZADELLABARRA=0
  762.   Bob OGGETTOCENTRODELLABARRA,XBARRA,YBARRA,5
  763.   Bob OGGETTOLATIDELLABARRA,XBARRA,YBARRA,6
  764.  Else If LUNGHEZZADELLABARRA=1
  765.   Bob OGGETTOCENTRODELLABARRA,XBARRA,YBARRA,1
  766.   Bob OGGETTOLATIDELLABARRA,XBARRA,YBARRA,2
  767.  Else If LUNGHEZZADELLABARRA=2
  768.   Bob OGGETTOCENTRODELLABARRA,XBARRA,YBARRA,3
  769.   Bob OGGETTOLATIDELLABARRA,XBARRA,YBARRA,4
  770.  End If 
  771.  Proc LIMITAIMOVIMENTIDELLABARRA
  772.  Pop Proc
  773.  LUNGHEZZADAZEROAUNO:
  774.  For OGGETTO=45 To 41 Step -1
  775.   Bob OGGETTOCENTRODELLABARRA,XBARRA,YBARRA,OGGETTO
  776.   Bob OGGETTOLATIDELLABARRA,XBARRA,YBARRA,OGGETTO+5
  777.   Proc LIMITAIMOVIMENTIDELLABARRAMENTRESTACAMBIANDO[OGGETTO]
  778.   Bob Update : Wait Vbl 
  779.  Next OGGETTO
  780.  Return 
  781.  LUNGHEZZADAUNOADUE:
  782.  For OGGETTO=13 To 26
  783.   Bob OGGETTOCENTRODELLABARRA,XBARRA,YBARRA,OGGETTO
  784.   Bob OGGETTOLATIDELLABARRA,XBARRA,YBARRA,OGGETTO+14
  785.   Proc LIMITAIMOVIMENTIDELLABARRAMENTRESTACAMBIANDO[OGGETTO]
  786.   Bob Update : Wait Vbl 
  787.  Next OGGETTO
  788.  Return 
  789.  LUNGHEZZADADUEAUNO:
  790.  For OGGETTO=26 To 13 Step -1
  791.   Bob OGGETTOCENTRODELLABARRA,XBARRA,YBARRA,OGGETTO
  792.   Bob OGGETTOLATIDELLABARRA,XBARRA,YBARRA,OGGETTO+14
  793.   Proc LIMITAIMOVIMENTIDELLABARRAMENTRESTACAMBIANDO[OGGETTO]
  794.   Bob Update : Wait Vbl 
  795.  Next OGGETTO
  796.  Return 
  797.  LUNGHEZZADAUNOAZERO:
  798.  For OGGETTO=41 To 45
  799.   Bob OGGETTOCENTRODELLABARRA,XBARRA,YBARRA,OGGETTO
  800.   Bob OGGETTOLATIDELLABARRA,XBARRA,YBARRA,OGGETTO+5
  801.   Proc LIMITAIMOVIMENTIDELLABARRAMENTRESTACAMBIANDO[OGGETTO]
  802.   Bob Update : Wait Vbl 
  803.  Next OGGETTO
  804.  Return 
  805. End Proc
  806. Procedure CANCELLAILRAGGIOLASER
  807.  Bob Off OGGETTORAGGIOLASER
  808.  RAGGIOLASERSPARATO=FALSO
  809. End Proc
  810. Procedure CANCELLAIMATTONCINIDIPOTENZIAMENTO
  811.  For FANTASMA=0 To MASSIMOMATTONCINIDIPOTENZIAMENTOINCAMPO-1
  812.   Bob Off FANTASMA
  813.  Next FANTASMA
  814. End Proc
  815. Procedure CANCELLALABARRA
  816.  Bob Off OGGETTOCENTRODELLABARRA : Bob Off OGGETTOLATIDELLABARRA
  817.  If LASER>0 Then Bob Off OGGETTOLASER
  818.  Bob Update 
  819. End Proc
  820. Procedure CANCELLALEPALLINE
  821.  For PALLINA=0 To MASSIMOPALLINEINCAMPO-1
  822.   P=MASSIMOMATTONCINIDIPOTENZIAMENTOINCAMPO+PALLINA
  823.   Bob Off P
  824.  Next PALLINA
  825.  Bob Update 
  826. End Proc
  827. Procedure CANCELLATUTTIIMATTONCINI
  828.  Cls 0,0,0 To Screen Width-1-LARGHEZZAPANNELLO+1,255+1
  829. End Proc
  830. Procedure CARICAGLIOGGETTI
  831.  Load PERCORSODELLAGRAFICA$+OGGETTI$
  832.  IMMAGINEPALLINA=Length(1)
  833.  MATTONCINIDIPOTENZIAMENTO=Length(1)-116
  834. End Proc
  835. Procedure CARICAILLIVELLO
  836.  LIVELLO$=PERCORSODEILIVELLI$+"Livello"+Str$(LIVELLO)-" "
  837.  If Exist(LIVELLO$)
  838.   Open In 1,LIVELLO$
  839.   MARCATORE$=Input$(1,9)
  840.   LUNGHEZZABANCO=Lof(1)
  841.   Close 1
  842.   If MARCATORE$="Mattonite"
  843.    Reserve As Work BANCO,LUNGHEZZABANCO
  844.    Bload LIVELLO$,Start(BANCO)
  845.   End If 
  846.  Else 
  847.   LIVELLO=-1
  848.  End If 
  849. End Proc
  850. Procedure CARICAISUONI
  851.  Load PERCORSODELLAMUSICA$+SUONI$
  852. End Proc
  853. Procedure CONTAIMATTONCINI
  854.  For M=0 To 246
  855.   If MATTONCINO(M)>0 Then Inc MATTONCINI
  856.  Next M
  857. End Proc
  858. Procedure CREALERIGHE
  859.  Ink 20 : Bar 0,241 To XFINALERIGA,245
  860.  Get Bob OGGETTORIGAUNO,0,241 To XFINALERIGA+1,245+1
  861.  Hot Spot OGGETTORIGAUNO,XFINALERIGA,0
  862.  Ink 21 : Bar 0,246 To XFINALERIGA,250
  863.  Get Bob OGGETTORIGADUE,0,246 To XFINALERIGA+1,250+1
  864.  Hot Spot OGGETTORIGADUE,XFINALERIGA,0
  865.  Ink 22 : Bar 0,251 To XFINALERIGA,255
  866.  Get Bob OGGETTORIGATRE,0,251 To XFINALERIGA+1,255+1
  867.  Hot Spot OGGETTORIGATRE,XFINALERIGA,0
  868.  Cls 
  869. End Proc
  870. Procedure DABANCOAVARIABILI
  871.  If Length(BANCO)>0
  872.   INDIRIZZO=Start(BANCO)+9
  873.   For A=0 To 246
  874.    MATTONCINO(A)=Peek(INDIRIZZO)
  875.    Inc INDIRIZZO
  876.   Next A
  877.   For A=0 To 255
  878.    ARCOBALENO=Peek(INDIRIZZO)
  879.    Inc INDIRIZZO
  880.    ARCOBALENO=ARCOBALENO+Peek(INDIRIZZO)*$100
  881.    Rain(0,A)=ARCOBALENO
  882.    Rainbow 0,257,0,271
  883.    Wait Vbl 
  884.    Inc INDIRIZZO
  885.   Next A
  886.   BONUS=Peek(INDIRIZZO)
  887.   Inc INDIRIZZO
  888.   Add BONUS,Peek(INDIRIZZO)*100
  889.   Inc INDIRIZZO
  890.   Add BONUS,Peek(INDIRIZZO)*10000
  891.   Inc INDIRIZZO
  892.   Add BONUS,Peek(INDIRIZZO)*1000000
  893.   Inc INDIRIZZO
  894.  End If 
  895.  Erase BANCO
  896. End Proc
  897. Procedure DISSOLVENZADEICOLORI[C0LORE,VELOCITA,M0DO]
  898.  C0LORIDELLOSCHERMOMENOUNO=Screen Colour-1
  899.  If C0LORIDELLOSCHERMOMENOUNO=63 Then C0LORIDELLOSCHERMOMENOUNO=31
  900.  If M0DO=0
  901.   For C=0 To C0LORIDELLOSCHERMOMENOUNO
  902.    Colour C,C0LORE
  903.    If VELOCITA>0
  904.     Wait VELOCITA
  905.    End If 
  906.   Next C
  907.  Else 
  908.   Dim ROSSO(C0LORIDELLOSCHERMOMENOUNO),VERDE(C0LORIDELLOSCHERMOMENOUNO),BLU(C0LORIDELLOSCHERMOMENOUNO)
  909.   Dim ROSSOFINALE(C0LORIDELLOSCHERMOMENOUNO),VERDEFINALE(C0LORIDELLOSCHERMOMENOUNO),BLUFINALE(C0LORIDELLOSCHERMOMENOUNO)
  910.   Dim ROSSODISSOLTO(C0LORIDELLOSCHERMOMENOUNO),VERDEDISSOLTO(C0LORIDELLOSCHERMOMENOUNO),BLUDISSOLTO(C0LORIDELLOSCHERMOMENOUNO)
  911.   For C=0 To C0LORIDELLOSCHERMOMENOUNO
  912.    If M0DO=1
  913.     ROSSOFINALE(C)=C0LORE/256
  914.     VERDEFINALE(C)=C0LORE/16 mod 16
  915.     BLUFINALE(C)=C0LORE mod 16
  916.    Else If M0DO=2
  917.     ROSSOFINALE(C)=C0LOREFINALE(C)/256
  918.     VERDEFINALE(C)=C0LOREFINALE(C)/16 mod 16
  919.     BLUFINALE(C)=C0LOREFINALE(C) mod 16
  920.    End If 
  921.    ROSSO(C)=Colour(C)/256
  922.    VERDE(C)=Colour(C)/16 mod 16
  923.    BLU(C)=Colour(C) mod 16
  924.   Next C
  925.   Repeat 
  926.    For C=0 To C0LORIDELLOSCHERMOMENOUNO
  927.     If ROSSODISSOLTO(C)=FALSO
  928.      If ROSSO(C)<ROSSOFINALE(C)
  929.       Inc ROSSO(C)
  930.      Else If ROSSO(C)=ROSSOFINALE(C)
  931.       ROSSODISSOLTO(C)=VERO
  932.      Else If ROSSO(C)>ROSSOFINALE(C)
  933.       Dec ROSSO(C)
  934.      End If 
  935.     End If 
  936.     If VERDEDISSOLTO(C)=FALSO
  937.      If VERDE(C)<VERDEFINALE(C)
  938.       Inc VERDE(C)
  939.      Else If VERDE(C)=VERDEFINALE(C)
  940.       VERDEDISSOLTO(C)=VERO
  941.      Else If VERDE(C)>VERDEFINALE(C)
  942.       Dec VERDE(C)
  943.      End If 
  944.     End If 
  945.     If BLUDISSOLTO(C)=FALSO
  946.      If BLU(C)<BLUFINALE(C)
  947.       Inc BLU(C)
  948.      Else If BLU(C)=BLUFINALE(C)
  949.       BLUDISSOLTO(C)=VERO
  950.      Else If BLU(C)>BLUFINALE(C)
  951.       Dec BLU(C)
  952.      End If 
  953.     End If 
  954.     Colour C,ROSSO(C)*256+VERDE(C)*16+BLU(C)
  955.     If C=0
  956.      C0LORIDISSOLTI=0
  957.     End If 
  958.     If ROSSODISSOLTO(C)=VERO
  959.      If VERDEDISSOLTO(C)=VERO
  960.       If BLUDISSOLTO(C)=VERO
  961.        Inc C0LORIDISSOLTI
  962.       End If 
  963.      End If 
  964.     End If 
  965.    Next C
  966.    If VELOCITA>0
  967.     Wait VELOCITA
  968.    End If 
  969.   Until C0LORIDISSOLTI=C0LORIDELLOSCHERMOMENOUNO+1
  970.  End If 
  971. End Proc
  972. Procedure IMPOSTAGLIOGGETTIPERLERIGHE
  973.  OGGETTORIGAUNO=IMMAGINEPALLINA+1
  974.  OGGETTORIGADUE=IMMAGINEPALLINA+2
  975.  OGGETTORIGATRE=IMMAGINEPALLINA+3
  976. End Proc
  977. Procedure IMPOSTAICOLORI
  978.  Get Bob Palette 
  979.  C0LORIDELLOSCHERMOMENOUNO=Screen Colour-1
  980.  If C0LORIDELLOSCHERMOMENOUNO=63 Then C0LORIDELLOSCHERMOMENOUNO=31
  981.  For C=0 To C0LORIDELLOSCHERMOMENOUNO
  982.   C0LOREFINALE(C)=Colour(C)
  983.  Next C
  984. End Proc
  985. Procedure IMPOSTAILAMPEGGI
  986.  Flash 20,"(0FF,2)(FFF,1)(0FF,2)(000,1)"
  987.  Flash 21,"(F70,2)(FFF,1)(F70,2)(000,1)"
  988.  Flash 22,"(F77,9)(FF7,9)(7F7,9)(7FF,9)(77F,9)(F7F,9)"
  989. End Proc
  990. Procedure IMPOSTAILMODODIRIDISEGNODEGLIOGGETTI
  991.  For OGGETTO=0 To 254
  992.   Set Bob OGGETTO,0,,
  993.  Next OGGETTO
  994. End Proc
  995. Procedure IMPOSTAICANALIDELSUONODAESEGUIRE
  996.  For CANALEDELSUONO=0 To 3
  997.   SUONODAESEGUIRE(CANALEDELSUONO)=2^CANALEDELSUONO
  998.  Next CANALEDELSUONO
  999. End Proc
  1000. Procedure IMPOSTAIPERCORSIDEIFILE
  1001.  PERCORSODEILIVELLI$=PERCORSO$+"Livelli/"
  1002.  PERCORSODELLAGRAFICA$=PERCORSO$+"Grafica/"
  1003.  PERCORSODELLAMUSICA$=PERCORSO$+"Musica/"
  1004. End Proc
  1005. Procedure IMPOSTALADURATADELLERIGHE
  1006.  DURATARIGA(0)=3000
  1007.  DURATARIGA(1)=10000
  1008.  DURATARIGA(2)=2^32-1
  1009. End Proc
  1010. Procedure IMPOSTALARCOBALENO
  1011.  Set Rainbow 0,C0LOREARCOBALENO,271,"","","" : Rainbow 0,257,0,271
  1012. End Proc
  1013. Procedure IMPOSTALEVELOCITADELLEPALLINE
  1014.  For P=0 To MASSIMOPALLINEINCAMPO-1
  1015.   VELOCITADELLAPALLINA(P)=2
  1016.  Next P
  1017. End Proc
  1018. Procedure IMPOSTALEZONE
  1019.  Reserve Zone 247
  1020.  For M=0 To 246
  1021.   LINEADIMATTONCINI=M/13
  1022.   RIGADIMATTONCINI=M mod 13
  1023.   X0ZONA(M)=RIGADIMATTONCINI*21
  1024.   Y0ZONA(M)=LINEADIMATTONCINI*11
  1025.   Set Zone M+1,X0ZONA(M),Y0ZONA(M) To X0ZONA(M)+20,Y0ZONA(M)+10
  1026.  Next M
  1027. End Proc
  1028. Procedure IMPOSTALINGOMBRODELLABARRA
  1029.  For L=0 To 2
  1030.   If L=0
  1031.    INGOMBRODELLABARRA(0)=10
  1032.   Else If L=1
  1033.    INGOMBRODELLABARRA(1)=16
  1034.   Else If L=2
  1035.    INGOMBRODELLABARRA(2)=31
  1036.   End If 
  1037.  Next L
  1038. End Proc
  1039. Procedure IMPOSTALOSCHERMO
  1040.  Screen Open 0,320,256,64,Lowres
  1041.  Curs Off : Flash Off : Pen 29 : Paper 0 : Cls : Autoback 0 : Bob Update Off 
  1042.  XFINALERIGA=Screen Width-1-LARGHEZZAPANNELLO
  1043. End Proc
  1044. Procedure INDIVIDUALAPOSIZIONEDELPROGRAMMA
  1045.  PERCORSO$=Dir$
  1046. End Proc
  1047. Procedure LIMITAIMOVIMENTIDELLABARRA
  1048.  X0TOPO=INGOMBRODELLABARRA(LUNGHEZZADELLABARRA)
  1049.  X1TOPO=Screen Width-1-LARGHEZZAPANNELLO-INGOMBRODELLABARRA(LUNGHEZZADELLABARRA)
  1050.  Limit Mouse X Hard(X0TOPO),Y Hard(0) To X Hard(X1TOPO),Y Hard(255)
  1051. End Proc
  1052. Procedure LIMITAIMOVIMENTIDELLABARRAMENTRESTACAMBIANDO[OGGETTO]
  1053.  If OGGETTO>39 and OGGETTO<46
  1054.   INGOMBRODELLABARRA=46-OGGETTO+10
  1055.  Else If OGGETTO>12 and OGGETTO<27
  1056.   INGOMBRODELLABARRA=OGGETTO+4
  1057.  End If 
  1058.  X0TOPO=INGOMBRODELLABARRA
  1059.  X1TOPO=Screen Width-1-LARGHEZZAPANNELLO-INGOMBRODELLABARRA
  1060.  Limit Mouse X Hard(X0TOPO),Y Hard(0) To X Hard(X1TOPO),Y Hard(255)
  1061. End Proc
  1062. Procedure LIMITI[NUMERO,LIMITEMINIMO,LIMITEMASSIMO]
  1063.  '-> Limiti by Stefano Regattin 
  1064.  'i> 19 maggio 1996 
  1065.  'm> 12 giugno 1996 
  1066.  '--------------------------------------------------------
  1067.  'La procedura equivale alle seguenti linee di programma: 
  1068.  ' If NUMERO<LIMITEMINIMO Then NUMERO=LIMITEMINIMO
  1069.  ' If NUMERO>LIMITEMASSIMO Then NUMERO=LIMITEMASSIMO
  1070.  'Se LIMITEMINIMO è maggiore di LIMITEMASSIMO ne scambia i valori 
  1071.  '----------------------------------------------------------------  
  1072.  If LIMITEMINIMO>LIMITEMASSIMO Then Swap LIMITEMINIMO,LIMITEMASSIMO
  1073.  NUMERO=Max(Min(NUMERO,LIMITEMASSIMO),LIMITEMINIMO)
  1074. End Proc[NUMERO]
  1075. Procedure MATTONCINIDIPOTENZIAMENTO[MATTONCINO,FREQUENZADIUSCITADEIMATTONCINIDIPOTENZIAMENTO]
  1076.  If FREQUENZADIUSCITADEIMATTONCINIDIPOTENZIAMENTO=0
  1077.   If MATTONCINO=0
  1078.    For FANTASMA=0 To MASSIMOMATTONCINIDIPOTENZIAMENTOINCAMPO-1
  1079.     If MATTONCINODIPOTENZIAMENTO(FANTASMA)>0
  1080.      If Bob Col(FANTASMA,OGGETTOCENTRODELLABARRA To OGGETTOLATIDELLABARRA)=VERO
  1081.       F=MATTONCINODIPOTENZIAMENTO(FANTASMA) : MATTONCINODIPOTENZIAMENTO(FANTASMA)=0
  1082.       If F=19
  1083.        Add PUNTEGGIO,20
  1084.       Else 
  1085.        Add PUNTEGGIO,10
  1086.       End If 
  1087.       Proc MOSTRAILPUNTEGGIO[True]
  1088.       Repeat 
  1089.        If F=1 : Rem add a ball in the game field   
  1090.         If PALLINEINCAMPO<MASSIMOPALLINEINCAMPO-1
  1091.          For P=0 To MASSIMOPALLINEINCAMPO-1
  1092.           If PALLINA(P)=FALSO
  1093.            XPALLINA(P)=XBARRA
  1094.            YPALLINA(P)=LIMITEYPALLINA
  1095.            D1REZIONEPALLINA=Rnd(1)
  1096.            If D1REZIONEPALLINA=0
  1097.             DELTAXPALLINA(P)=VELOCITADELLAPALLINA(P)
  1098.            Else 
  1099.             DELTAXPALLINA(P)=-VELOCITADELLAPALLINA(P)
  1100.            End If 
  1101.            DELTAYPALLINA(P)=-VELOCITADELLAPALLINA(P)
  1102.            RIMBALZODELLAPALLINAAILATIDELLABARRA(P)=FALSO
  1103.            FANTASMAPALLINA=MASSIMOMATTONCINIDIPOTENZIAMENTOINCAMPO+P
  1104.            Bob FANTASMAPALLINA,XPALLINA(P),YPALLINA(P),IMMAGINEPALLINA
  1105.            PALLINA(P)=VERO : Exit 
  1106.           End If 
  1107.          Next P
  1108.          Inc PALLINEINCAMPO
  1109.         End If 
  1110.         F=0
  1111.        Else If F=2 : Rem ball+  
  1112.         If PALLINE<999
  1113.          Inc PALLINE : Proc MOSTRALEPALLINERIMASTE
  1114.         End If 
  1115.         F=0
  1116.        Else If F=3 : Rem ball-
  1117.         If PALLINE>0
  1118.          Dec PALLINE : Proc MOSTRALEPALLINERIMASTE
  1119.         End If 
  1120.         F=0
  1121.        Else If F=4 : Rem Bar+ 
  1122.         If LUNGHEZZADELLABARRACAMBIATA<2
  1123.          Inc LUNGHEZZADELLABARRACAMBIATA
  1124.          Proc CAMBIALALUNGHEZZADELLABARRA
  1125.         End If 
  1126.         F=0
  1127.        Else If F=5 : Rem Bar- 
  1128.         If LUNGHEZZADELLABARRACAMBIATA>0
  1129.          Dec LUNGHEZZADELLABARRACAMBIATA
  1130.          Proc CAMBIALALUNGHEZZADELLABARRA
  1131.         End If 
  1132.         F=0
  1133.        Else If F=6 : Rem Glue 
  1134.         C0LLA= Not C0LLA
  1135.         F=0
  1136.        Else If F=7 : Rem Laser+   
  1137.         If LASER<3
  1138.          Inc LASER
  1139.         End If 
  1140.         F=0
  1141.        Else If F=8 : Rem Laser- 
  1142.         If LASER>0
  1143.          Dec LASER
  1144.         End If 
  1145.         F=0
  1146.        Else If F=9 : Rem Next level 
  1147.         MATTONCINI=0
  1148.         F=0
  1149.        Else If F=10 : Rem Points+    
  1150.         If PUNTEGGIO<9999899
  1151.          Add PUNTEGGIO,90 : Proc MOSTRAILPUNTEGGIO[True]
  1152.         End If 
  1153.         F=0
  1154.        Else If F=11 : Rem Points-    
  1155.         If PUNTEGGIO>99
  1156.          Add PUNTEGGIO,-111 : Proc MOSTRAILPUNTEGGIO[True]
  1157.         End If 
  1158.         F=0
  1159.        Else If F=12 : Rem Row+   
  1160.         If RIGA<3
  1161.          T0GLILARIGA=RIGA : Inc RIGA
  1162.         End If 
  1163.         F=0
  1164.        Else If F=13 : Rem Row-   
  1165.         If RIGA>0
  1166.          T0GLILARIGA=RIGA : Dec RIGA
  1167.         End If 
  1168.         F=0
  1169.        Else If F=14 : Rem Balls speed+   
  1170.         For P=0 To MASSIMOPALLINEINCAMPO-1
  1171.          If PALLINA(P)=VERO
  1172.           If VELOCITADELLAPALLINA(P)<4
  1173.            Inc VELOCITADELLAPALLINA(P)
  1174.            DELTAXPALLINA(P)=VELOCITADELLAPALLINA(P)*Sgn(DELTAXPALLINA(P))
  1175.            DELTAYPALLINA(P)=VELOCITADELLAPALLINA(P)*Sgn(DELTAYPALLINA(P))
  1176.           End If 
  1177.          End If 
  1178.         Next P
  1179.         F=0
  1180.        Else If F=15 : Rem Balls speed-   
  1181.         For P=0 To MASSIMOPALLINEINCAMPO-1
  1182.          If PALLINA(P)=VERO
  1183.           If VELOCITADELLAPALLINA(P)>1
  1184.            Dec VELOCITADELLAPALLINA(P)
  1185.            DELTAXPALLINA(P)=VELOCITADELLAPALLINA(P)*Sgn(DELTAXPALLINA(P))
  1186.            DELTAYPALLINA(P)=VELOCITADELLAPALLINA(P)*Sgn(DELTAYPALLINA(P))
  1187.           End If 
  1188.          End If 
  1189.         Next P
  1190.         F=0
  1191.        Else If F=16 : Rem Xtreme   
  1192.         RIMBALZODELLEPALLINESUIMATTONCINI= Not RIMBALZODELLEPALLINESUIMATTONCINI
  1193.         F=0
  1194.        Else If F=17 : Rem y+   
  1195.         If YBARRA<247
  1196.          Add YBARRA,5
  1197.         End If 
  1198.         LIMITEYPALLINA=YBARRA-4
  1199.         F=0
  1200.        Else If F=18 : Rem y-   
  1201.         If YBARRA>147
  1202.          Add YBARRA,-5
  1203.         End If 
  1204.         LIMITEYPALLINA=YBARRA-4
  1205.         F=0
  1206.        Else If F=19 : Rem ?  
  1207.         F=Rnd(MATTONCINIDIPOTENZIAMENTO-2)+1
  1208.        End If 
  1209.       Until F=0
  1210.      End If 
  1211.      If MATTONCINODIPOTENZIAMENTO(FANTASMA)>0
  1212.       Inc YMATTONCINODIPOTENZIAMENTO(FANTASMA)
  1213.       Bob FANTASMA,XMATTONCINODIPOTENZIAMENTO(FANTASMA),YMATTONCINODIPOTENZIAMENTO(FANTASMA),MATTONCINODIPOTENZIAMENTO(FANTASMA)+115
  1214.       Proc PULISCISOTTOILMATTONCINODIPOTENZIAMENTO[XMATTONCINODIPOTENZIAMENTO(FANTASMA),YMATTONCINODIPOTENZIAMENTO(FANTASMA)]
  1215.       If YMATTONCINODIPOTENZIAMENTO(FANTASMA)>255
  1216.        MATTONCINODIPOTENZIAMENTO(FANTASMA)=0
  1217.       End If 
  1218.      End If 
  1219.     Else 
  1220.      Bob Off FANTASMA
  1221.     End If 
  1222.    Next FANTASMA
  1223.    If PUNTEGGIO>PUNTEGGIOMASSIMO
  1224.     PUNTEGGIOMASSIMO=PUNTEGGIO : Proc MOSTRAILPUNTEGGIOMASSIMO[FALSO]
  1225.    End If 
  1226.   Else 
  1227.    FANTASMA=0
  1228.    Repeat 
  1229.     Exit If MATTONCINODIPOTENZIAMENTO(FANTASMA)=0
  1230.     Inc FANTASMA
  1231.    Until FANTASMA=MASSIMOMATTONCINIDIPOTENZIAMENTOINCAMPO
  1232.    If FANTASMA<MASSIMOMATTONCINIDIPOTENZIAMENTOINCAMPO
  1233.     If MATTONCINO<0
  1234.      XMATTONCINODIPOTENZIAMENTO(FANTASMA)=XBARRA-9
  1235.      YMATTONCINODIPOTENZIAMENTO(FANTASMA)=0
  1236.      MATTONCINODIPOTENZIAMENTO(FANTASMA)=-MATTONCINO
  1237.     Else 
  1238.      XMATTONCINODIPOTENZIAMENTO(FANTASMA)=X0ZONA(MATTONCINO-1)
  1239.      YMATTONCINODIPOTENZIAMENTO(FANTASMA)=Y0ZONA(MATTONCINO-1)
  1240.      MATTONCINODIPOTENZIAMENTO(FANTASMA)=Rnd(MATTONCINIDIPOTENZIAMENTO-1)+1
  1241.     End If 
  1242.     Bob FANTASMA,XMATTONCINODIPOTENZIAMENTO(FANTASMA),YMATTONCINODIPOTENZIAMENTO(FANTASMA),MATTONCINODIPOTENZIAMENTO(FANTASMA)+115
  1243.     Proc PULISCISOTTOILMATTONCINODIPOTENZIAMENTO[XMATTONCINODIPOTENZIAMENTO(FANTASMA),YMATTONCINODIPOTENZIAMENTO(FANTASMA)]
  1244.    End If 
  1245.   End If 
  1246.  End If 
  1247. End Proc
  1248. Procedure METTILARIGA
  1249.  If RIGA=1
  1250.   Bob OGGETTORIGAUNO,XRIGA,251,OGGETTORIGAUNO
  1251.  Else If RIGA=2
  1252.   Bob OGGETTORIGADUE,XRIGA,251,OGGETTORIGADUE
  1253.  Else If RIGA=3
  1254.   Bob OGGETTORIGATRE,XRIGA,251,OGGETTORIGATRE
  1255.  End If 
  1256.  If RIGA>0 and XRIGA=XFINALERIGA Then DURATARIGA=DURATARIGA(RIGA-1)
  1257. End Proc
  1258. Procedure METTILEPALLINESULLABARRA
  1259.  For PALLINA=0 To PALLINEINCAMPO-1
  1260.   XPALLINA(PALLINA)=XBARRA-14+PALLINA*7
  1261.   YPALLINA(PALLINA)=LIMITEYPALLINA
  1262.   FANTASMAPALLINA=MASSIMOMATTONCINIDIPOTENZIAMENTOINCAMPO+PALLINA
  1263.   Bob FANTASMAPALLINA,XPALLINA(PALLINA),YPALLINA(PALLINA),IMMAGINEPALLINA
  1264.  Next PALLINA
  1265. End Proc
  1266. Procedure MOSTRAILBONUS[M0DO]
  1267.  If M0DO=VERO
  1268.   CIFRA=BONUS mod 10
  1269.   Paste Bob 273,228,25+Asc(Str$(CIFRA)-" ")
  1270.   CIFRA=BONUS/10 mod 10
  1271.   Paste Bob 273,210,25+Asc(Str$(CIFRA)-" ")
  1272.   CIFRA=BONUS/100 mod 10
  1273.   Paste Bob 273,192,25+Asc(Str$(CIFRA)-" ")
  1274.   CIFRA=BONUS/1000 mod 10
  1275.   Paste Bob 273,174,25+Asc(Str$(CIFRA)-" ")
  1276.   CIFRA=BONUS/10000 mod 10
  1277.   Paste Bob 273,156,25+Asc(Str$(CIFRA)-" ")
  1278.   CIFRA=BONUS/100000 mod 10
  1279.   Paste Bob 273,138,25+Asc(Str$(CIFRA)-" ")
  1280.   CIFRA=BONUS/1000000 mod 10
  1281.   Paste Bob 273,120,25+Asc(Str$(CIFRA)-" ")
  1282.  Else 
  1283.   CIFRA=BONUS mod 10
  1284.   Paste Bob 273,228,25+Asc(Str$(CIFRA)-" ")
  1285.   If CIFRA=9
  1286.    CIFRA=BONUS/10 mod 10
  1287.    Paste Bob 273,210,25+Asc(Str$(CIFRA)-" ")
  1288.    If CIFRA=9
  1289.     CIFRA=BONUS/100 mod 10
  1290.     Paste Bob 273,192,25+Asc(Str$(CIFRA)-" ")
  1291.     If CIFRA=9
  1292.      CIFRA=BONUS/1000 mod 10
  1293.      Paste Bob 273,174,25+Asc(Str$(CIFRA)-" ")
  1294.      If CIFRA=9
  1295.       CIFRA=BONUS/10000 mod 10
  1296.       Paste Bob 273,156,25+Asc(Str$(CIFRA)-" ")
  1297.       If CIFRA=9
  1298.        CIFRA=BONUS/100000 mod 10
  1299.        Paste Bob 273,138,25+Asc(Str$(CIFRA)-" ")
  1300.        If CIFRA=9
  1301.         CIFRA=BONUS/1000000 mod 10
  1302.         Paste Bob 273,120,25+Asc(Str$(CIFRA)-" ")
  1303.        End If 
  1304.       End If 
  1305.      End If 
  1306.     End If 
  1307.    End If 
  1308.   End If 
  1309.  End If 
  1310. End Proc
  1311. Procedure MOSTRAILLIVELLO
  1312.  CIFRA=LIVELLO mod 10
  1313.  Paste Bob 305,29,15+Asc(Str$(CIFRA)-" ")
  1314.  CIFRA=LIVELLO/10 mod 10
  1315.  Paste Bob 289,29,15+Asc(Str$(CIFRA)-" ")
  1316.  CIFRA=LIVELLO/100 mod 10
  1317.  Paste Bob 273,29,15+Asc(Str$(CIFRA)-" ")
  1318. End Proc
  1319. Procedure MOSTRAILPUNTEGGIO[M0DO]
  1320.  If M0DO=VERO
  1321.   CIFRA=PUNTEGGIO mod 10
  1322.   Paste Bob 289,228,5+Asc(Str$(CIFRA)-" ")
  1323.   CIFRA=PUNTEGGIO/10 mod 10
  1324.   Paste Bob 289,210,5+Asc(Str$(CIFRA)-" ")
  1325.   CIFRA=PUNTEGGIO/100 mod 10
  1326.   Paste Bob 289,192,5+Asc(Str$(CIFRA)-" ")
  1327.   CIFRA=PUNTEGGIO/1000 mod 10
  1328.   Paste Bob 289,174,5+Asc(Str$(CIFRA)-" ")
  1329.   CIFRA=PUNTEGGIO/10000 mod 10
  1330.   Paste Bob 289,156,5+Asc(Str$(CIFRA)-" ")
  1331.   CIFRA=PUNTEGGIO/100000 mod 10
  1332.   Paste Bob 289,138,5+Asc(Str$(CIFRA)-" ")
  1333.   CIFRA=PUNTEGGIO/1000000 mod 10
  1334.   Paste Bob 289,120,5+Asc(Str$(CIFRA)-" ")
  1335.  Else 
  1336.   CIFRA=PUNTEGGIO mod 10
  1337.   Paste Bob 289,228,5+Asc(Str$(CIFRA)-" ")
  1338.   If CIFRA=0
  1339.    CIFRA=PUNTEGGIO/10 mod 10
  1340.    Paste Bob 289,210,5+Asc(Str$(CIFRA)-" ")
  1341.    If CIFRA=0
  1342.     CIFRA=PUNTEGGIO/100 mod 10
  1343.     Paste Bob 289,192,5+Asc(Str$(CIFRA)-" ")
  1344.     If CIFRA=0
  1345.      CIFRA=PUNTEGGIO/1000 mod 10
  1346.      Paste Bob 289,174,5+Asc(Str$(CIFRA)-" ")
  1347.      If CIFRA=0
  1348.       CIFRA=PUNTEGGIO/10000 mod 10
  1349.       Paste Bob 289,156,5+Asc(Str$(CIFRA)-" ")
  1350.       If CIFRA=0
  1351.        CIFRA=PUNTEGGIO/100000 mod 10
  1352.        Paste Bob 289,138,5+Asc(Str$(CIFRA)-" ")
  1353.        If CIFRA=0
  1354.         CIFRA=PUNTEGGIO/1000000 mod 10
  1355.         Paste Bob 289,120,5+Asc(Str$(CIFRA)-" ")
  1356.        End If 
  1357.       End If 
  1358.      End If 
  1359.     End If 
  1360.    End If 
  1361.   End If 
  1362.  End If 
  1363. End Proc
  1364. Procedure MOSTRAILPUNTEGGIOMASSIMO[M0DO]
  1365.  If M0DO=VERO
  1366.   CIFRA=PUNTEGGIOMASSIMO mod 10
  1367.   Paste Bob 305,228,15+Asc(Str$(CIFRA)-" ")
  1368.   CIFRA=PUNTEGGIOMASSIMO/10 mod 10
  1369.   Paste Bob 305,210,15+Asc(Str$(CIFRA)-" ")
  1370.   CIFRA=PUNTEGGIOMASSIMO/100 mod 10
  1371.   Paste Bob 305,192,15+Asc(Str$(CIFRA)-" ")
  1372.   CIFRA=PUNTEGGIOMASSIMO/1000 mod 10
  1373.   Paste Bob 305,174,15+Asc(Str$(CIFRA)-" ")
  1374.   CIFRA=PUNTEGGIOMASSIMO/10000 mod 10
  1375.   Paste Bob 305,156,15+Asc(Str$(CIFRA)-" ")
  1376.   CIFRA=PUNTEGGIOMASSIMO/100000 mod 10
  1377.   Paste Bob 305,138,15+Asc(Str$(CIFRA)-" ")
  1378.   CIFRA=PUNTEGGIOMASSIMO/1000000 mod 10
  1379.   Paste Bob 305,120,15+Asc(Str$(CIFRA)-" ")
  1380.  Else 
  1381.   CIFRA=PUNTEGGIOMASSIMO mod 10
  1382.   Paste Bob 305,228,15+Asc(Str$(CIFRA)-" ")
  1383.   If CIFRA=0
  1384.    CIFRA=PUNTEGGIOMASSIMO/10 mod 10
  1385.    Paste Bob 305,210,15+Asc(Str$(CIFRA)-" ")
  1386.    If CIFRA=0
  1387.     CIFRA=PUNTEGGIOMASSIMO/100 mod 10
  1388.     Paste Bob 305,192,15+Asc(Str$(CIFRA)-" ")
  1389.     If CIFRA=0
  1390.      CIFRA=PUNTEGGIOMASSIMO/1000 mod 10
  1391.      Paste Bob 305,174,15+Asc(Str$(CIFRA)-" ")
  1392.      If CIFRA=0
  1393.       CIFRA=PUNTEGGIOMASSIMO/10000 mod 10
  1394.       Paste Bob 305,156,15+Asc(Str$(CIFRA)-" ")
  1395.       If CIFRA=0
  1396.        CIFRA=PUNTEGGIOMASSIMO/100000 mod 10
  1397.        Paste Bob 305,138,15+Asc(Str$(CIFRA)-" ")
  1398.        If CIFRA=0
  1399.         CIFRA=PUNTEGGIOMASSIMO/1000000 mod 10
  1400.         Paste Bob 305,120,15+Asc(Str$(CIFRA)-" ")
  1401.        End If 
  1402.       End If 
  1403.      End If 
  1404.     End If 
  1405.    End If 
  1406.   End If 
  1407.  End If 
  1408. End Proc
  1409. Procedure MOSTRAIMATTONCINI
  1410.  For M=0 To 246
  1411.   If MATTONCINO(M)=0
  1412.    Ink 0 : Bar X0ZONA(M),Y0ZONA(M) To X0ZONA(M)+19,Y0ZONA(M)+9
  1413.   Else 
  1414.    Paste Bob X0ZONA(M),Y0ZONA(M),MATTONCINO(M)+82
  1415.   End If 
  1416.  Next M
  1417. End Proc
  1418. Procedure MOSTRAIPUNTEGGIDEIGIOCATORI
  1419.  PUNTEGGI$=PERCORSO$+"Punteggi"
  1420.  If Exist(PUNTEGGI$)
  1421.   If Eof(1)=FALSO
  1422.    Open In 1,PUNTEGGI$
  1423.    For POSIZIONE=0 To 99
  1424.     Input #1,GIOCATORE$(POSIZIONE)
  1425.     Input #1,PUNTEGGIO(POSIZIONE)
  1426.     Exit If Eof(1)=VERO
  1427.    Next POSIZIONE
  1428.   End If 
  1429.  Else 
  1430.   Proc TESTOGRAFICOCENTRATOOFATTOSCORRERE["No players till now...",20,0,ALTEZZAFONT,FALSO]
  1431.  End If 
  1432. End Proc
  1433. Procedure MOSTRAILPANNELLO
  1434.  Paste Bob Screen Width-1-LARGHEZZAPANNELLO+1,0,51
  1435.  Paste Bob Screen Width-1-LARGHEZZAPANNELLO+1,128,52
  1436. End Proc
  1437. Procedure MOSTRALEPALLINERIMASTE
  1438.  PALLINERIMASTE=PALLINE-1
  1439.  CIFRA=PALLINERIMASTE mod 10
  1440.  Paste Bob 305,13,5+Asc(Str$(CIFRA)-" ")
  1441.  CIFRA=PALLINERIMASTE/10 mod 10
  1442.  Paste Bob 289,13,5+Asc(Str$(CIFRA)-" ")
  1443.  CIFRA=PALLINERIMASTE/100 mod 10
  1444.  Paste Bob 273,13,5+Asc(Str$(CIFRA)-" ")
  1445. End Proc
  1446. Procedure PULISCISOTTOILMATTONCINODIPOTENZIAMENTO[XMATTONCINO,YMATTONCINO]
  1447.  MATTONCINODARIDISEGNARE=Zone(XMATTONCINO,YMATTONCINO)
  1448.  If MATTONCINODARIDISEGNARE>0
  1449.   If MATTONCINODARIDISEGNARE mod 13=12
  1450.    Gosub CANCELLAILMATTONCINO
  1451.   Else 
  1452.    Gosub CANCELLAILMATTONCINO
  1453.    Inc MATTONCINODARIDISEGNARE
  1454.    Gosub CANCELLAILMATTONCINO
  1455.   End If 
  1456.  End If 
  1457.  Pop Proc
  1458.  CANCELLAILMATTONCINO:
  1459.  If MATTONCINO(MATTONCINODARIDISEGNARE-1)=0
  1460.   Ink 0 : Bar X0ZONA(MATTONCINODARIDISEGNARE-1),Y0ZONA(MATTONCINODARIDISEGNARE-1) To X0ZONA(MATTONCINODARIDISEGNARE-1)+19,Y0ZONA(MATTONCINODARIDISEGNARE-1)+9
  1461.  End If 
  1462. End Proc
  1463. Procedure PULISCISOTTOILRAGGIOLASER[XMATTONCINO,YMATTONCINO]
  1464.  MATTONCINODARIDISEGNARE=Zone(XMATTONCINO,YMATTONCINO)
  1465.  If MATTONCINODARIDISEGNARE>0
  1466.   If MATTONCINO(MATTONCINODARIDISEGNARE-1)=0
  1467.    Ink 0 : Bar X0ZONA(MATTONCINODARIDISEGNARE-1),Y0ZONA(MATTONCINODARIDISEGNARE-1) To X0ZONA(MATTONCINODARIDISEGNARE-1)+19,Y0ZONA(MATTONCINODARIDISEGNARE-1)+9
  1468.   End If 
  1469.  End If 
  1470. End Proc
  1471. Procedure SUONODAESEGUIRE
  1472.  SUONOESEGUITO=SUONODAESEGUIRE(0)
  1473.  For S=1 To 3
  1474.   SUONODAESEGUIRE(S-1)=SUONODAESEGUIRE(S)
  1475.  Next S
  1476.  SUONODAESEGUIRE(3)=SUONOESEGUITO
  1477. End Proc
  1478. Procedure TESTOGRAFICOCENTRATOOFATTOSCORRERE[STRINGA$,C0LORETESTO,C0LOREBORDO,ALTEZZAFONT,COPIASCHERMOZERO]
  1479.  If COPIASCHERMOZERO=VERO Then Get Block 1,0,0,320,256,0
  1480.  POSIZIONEPRECEDENTETESTO=1
  1481.  Repeat 
  1482.   POSIZIONETESTO=Instr(STRINGA$,Chr$(10),POSIZIONEPRECEDENTETESTO)
  1483.   POSIZIONEPRECEDENTETESTO=POSIZIONETESTO+1
  1484.   Inc LINEETESTO
  1485.  Until POSIZIONETESTO=0
  1486.  If LINEETESTO=1
  1487.   Put Block 1
  1488.   XTESTO=(Screen Width-Text Length(STRINGA$))/2
  1489.   YTESTO=(Screen Height-ALTEZZAFONT)/2+Text Base
  1490.   Gr Writing 0
  1491.   Ink C0LOREBORDO : Text XTESTO,YTESTO-1,STRINGA$
  1492.   Text XTESTO+1,YTESTO-1,STRINGA$
  1493.   Text XTESTO+1,YTESTO,STRINGA$
  1494.   Text XTESTO+1,YTESTO+1,STRINGA$
  1495.   Text XTESTO,YTESTO+1,STRINGA$
  1496.   Text XTESTO-1,YTESTO+1,STRINGA$
  1497.   Text XTESTO-1,YTESTO,STRINGA$
  1498.   Text XTESTO-1,YTESTO-1,STRINGA$
  1499.   Ink C0LORETESTO : Text XTESTO,YTESTO,STRINGA$
  1500.   Gr Writing 1
  1501.  Else 
  1502.   Dim TESTO$(LINEETESTO-1)
  1503.   LINEETESTO=0
  1504.   POSIZIONEPRECEDENTETESTO=1
  1505.   Repeat 
  1506.    POSIZIONETESTO=Instr(STRINGA$,Chr$(10),POSIZIONEPRECEDENTETESTO)
  1507.    If POSIZIONETESTO=0
  1508.     TESTO$(LINEETESTO)=Right$(STRINGA$,Len(STRINGA$)-POSIZIONEPRECEDENTETESTO+1)
  1509.    Else 
  1510.     TESTO$(LINEETESTO)=Mid$(STRINGA$,POSIZIONEPRECEDENTETESTO,POSIZIONETESTO-POSIZIONEPRECEDENTETESTO)
  1511.    End If 
  1512.    POSIZIONEPRECEDENTETESTO=POSIZIONETESTO+1
  1513.    Inc LINEETESTO
  1514.   Until POSIZIONETESTO=0
  1515.   NUMEROMASSIMOLINEENELLOSCHERMO=Screen Height/ALTEZZAFONT
  1516.   If LINEETESTO>NUMEROMASSIMOLINEENELLOSCHERMO
  1517.    Put Block 1
  1518.    ALTEZZATESTO=(Screen Height-ALTEZZAFONT*NUMEROMASSIMOLINEENELLOSCHERMO)/2
  1519.    For LINEA=0 To NUMEROMASSIMOLINEENELLOSCHERMO-1
  1520.     XTESTO=(Screen Width-Text Length(TESTO$(LINEA)))/2
  1521.     YTESTO=ALTEZZATESTO+ALTEZZAFONT*LINEA+Text Base
  1522.     Gr Writing 0
  1523.     Ink C0LOREBORDO : Text XTESTO,YTESTO-1,TESTO$(LINEA)
  1524.     Text XTESTO+1,YTESTO-1,TESTO$(LINEA)
  1525.     Text XTESTO+1,YTESTO,TESTO$(LINEA)
  1526.     Text XTESTO+1,YTESTO+1,TESTO$(LINEA)
  1527.     Text XTESTO,YTESTO+1,TESTO$(LINEA)
  1528.     Text XTESTO-1,YTESTO+1,TESTO$(LINEA)
  1529.     Text XTESTO-1,YTESTO,TESTO$(LINEA)
  1530.     Text XTESTO-1,YTESTO-1,TESTO$(LINEA)
  1531.     Ink C0LORETESTO : Text XTESTO,YTESTO,TESTO$(LINEA)
  1532.     Gr Writing 1
  1533.    Next LINEA
  1534.    Wait 25*NUMEROMASSIMOLINEENELLOSCHERMO
  1535.    LINEA=1
  1536.    Repeat 
  1537.     Put Block 1
  1538.     For LINEANELLOSCHERMO=0 To NUMEROMASSIMOLINEENELLOSCHERMO-1
  1539.      XTESTO=(Screen Width-Text Length(TESTO$(LINEA+LINEANELLOSCHERMO)))/2
  1540.      YTESTO=ALTEZZATESTO+ALTEZZAFONT*LINEANELLOSCHERMO+Text Base
  1541.      Gr Writing 0
  1542.      Ink C0LOREBORDO : Text XTESTO,YTESTO-1,TESTO$(LINEA+LINEANELLOSCHERMO)
  1543.      Text XTESTO+1,YTESTO-1,TESTO$(LINEA+LINEANELLOSCHERMO)
  1544.      Text XTESTO+1,YTESTO,TESTO$(LINEA+LINEANELLOSCHERMO)
  1545.      Text XTESTO+1,YTESTO+1,TESTO$(LINEA+LINEANELLOSCHERMO)
  1546.      Text XTESTO,YTESTO+1,TESTO$(LINEA+LINEANELLOSCHERMO)
  1547.      Text XTESTO-1,YTESTO+1,TESTO$(LINEA+LINEANELLOSCHERMO)
  1548.      Text XTESTO-1,YTESTO,TESTO$(LINEA+LINEANELLOSCHERMO)
  1549.      Text XTESTO-1,YTESTO-1,TESTO$(LINEA+LINEANELLOSCHERMO)
  1550.      Ink C0LORETESTO : Text XTESTO,YTESTO,TESTO$(LINEA+LINEANELLOSCHERMO)
  1551.      Gr Writing 1
  1552.     Next LINEANELLOSCHERMO
  1553.     Wait 25
  1554.     Inc LINEA
  1555.    Until LINEA+LINEANELLOSCHERMO=LINEETESTO
  1556.   Else 
  1557.    Put Block 1
  1558.    ALTEZZATESTO=(Screen Height-ALTEZZAFONT*LINEETESTO)/2
  1559.    For LINEA=0 To LINEETESTO-1
  1560.     XTESTO=(Screen Width-Text Length(TESTO$(LINEA)))/2
  1561.     YTESTO=ALTEZZATESTO+ALTEZZAFONT*LINEA+Text Base
  1562.     Gr Writing 0
  1563.     Ink C0LOREBORDO : Text XTESTO,YTESTO-1,TESTO$(LINEA)
  1564.     Text XTESTO+1,YTESTO-1,TESTO$(LINEA)
  1565.     Text XTESTO+1,YTESTO,TESTO$(LINEA)
  1566.     Text XTESTO+1,YTESTO+1,TESTO$(LINEA)
  1567.     Text XTESTO,YTESTO+1,TESTO$(LINEA)
  1568.     Text XTESTO-1,YTESTO+1,TESTO$(LINEA)
  1569.     Text XTESTO-1,YTESTO,TESTO$(LINEA)
  1570.     Text XTESTO-1,YTESTO-1,TESTO$(LINEA)
  1571.     Ink C0LORETESTO : Text XTESTO,YTESTO,TESTO$(LINEA)
  1572.     Gr Writing 1
  1573.    Next LINEA
  1574.   End If 
  1575.  End If 
  1576. End Proc
  1577. Procedure T0GLIILPANNELLO
  1578.  For Y=255 To 0 Step -1
  1579.   Ink 0 : Draw Screen Width-1-LARGHEZZAPANNELLO+1,Y To 320,Y : Wait Vbl 
  1580.  Next Y
  1581. End Proc
  1582. Procedure T0GLIIMATTONCINI
  1583.  For M=246 To 0 Step -1
  1584.   If M mod 13=12
  1585.    Cls 0,X0ZONA(M),Y0ZONA(M) To X0ZONA(M)+20,Y0ZONA(M)+11
  1586.   Else 
  1587.    Cls 0,X0ZONA(M),Y0ZONA(M) To X0ZONA(M)+21,Y0ZONA(M)+11
  1588.   End If 
  1589.   Wait Vbl 
  1590.  Next M
  1591. End Proc
  1592. Procedure T0GLILARCOBALENO
  1593.  For ARCOBALENO=270 To 0 Step -1
  1594.   Rainbow 0,257,0,ARCOBALENO
  1595.   Wait Vbl 
  1596.  Next ARCOBALENO
  1597.  Rainbow Del 0
  1598. End Proc
  1599. Procedure T0GLILARIGA
  1600.  If XRIGA>0
  1601.   If T0GLILARIGA=1
  1602.    Bob OGGETTORIGAUNO,XRIGA,251,OGGETTORIGAUNO
  1603.   Else If T0GLILARIGA=2
  1604.    Bob OGGETTORIGADUE,XRIGA,251,OGGETTORIGADUE
  1605.   Else If T0GLILARIGA=3
  1606.    Bob OGGETTORIGATRE,XRIGA,251,OGGETTORIGATRE
  1607.   End If 
  1608.  Else 
  1609.   If T0GLILARIGA=1
  1610.    Bob Off OGGETTORIGAUNO
  1611.   Else If T0GLILARIGA=2
  1612.    Bob Off OGGETTORIGADUE
  1613.   Else If T0GLILARIGA=3
  1614.    Bob Off OGGETTORIGATRE
  1615.   End If 
  1616.  End If 
  1617. End Proc
  1618. Procedure TROVAILFONTDATA70
  1619.  Get Disc Fonts 
  1620.  FONTTROVATO=-1
  1621.  For FONT=0 To 1024
  1622.   If Left$(Font$(FONT),30)-" "="Data70.font" Then FONTTROVATO=FONT : Exit 
  1623.  Next FONT
  1624.  If FONTTROVATO>-1
  1625.   Set Font FONTTROVATO
  1626.   ALTEZZAFONT=Val(Mid$(Font$(FONTTROVATO),31,2))
  1627.  Else 
  1628.   ALTEZZAFONT=8
  1629.  End If 
  1630. End Proc
  1631.